slope <- map_dfr(rigal_trends,
  ~.x %>%
  select(siteid, linear_slope),
.id = "response"
)
slope_df <- slope %>%
  pivot_wider(names_from = "response", values_from = "linear_slope") 

1 Summary

summary_slope <- slope %>%
  group_by(response) %>%
  summarise(summ = list(enframe(summary_distribution(linear_slope, na.rm = TRUE)))) %>%
  unnest(cols = summ) %>%
  pivot_wider(names_from = "name", values_from = "value")
summary_slope %>%
  mutate(response = get_var_replacement()[response]) %>%
  kable() %>%
  kable_styling(bootstrap_options = c("striped", "bordered", "hover")) %>%
  scroll_box(width = "100%", height = "400px")
response min 1st_quart median 2nd_quart max mean sd n n_na frac_na
Appearance -0.0559441 -0.0018271 0.0009691 0.0065140 0.0600000 0.0027393 0.0098864 2678 0 0
Chao (binary, similarity) -0.0969697 -0.0061754 0.0000000 0.0000000 0.1210526 -0.0029650 0.0138050 2678 0 0
Chao evenness -1.0762433 -0.0197209 0.0000000 0.0214427 0.8698342 0.0000118 0.0687473 2678 0 0
Chao species richness -1.0804000 -0.0363727 0.0002926 0.0473422 0.9908720 0.0073944 0.1387268 2678 0 0
Chao shannon -0.7782364 -0.0270535 0.0007389 0.0362457 0.7822804 0.0043759 0.0822483 2678 0 0
Chao simpson -0.6747701 -0.0241523 0.0007189 0.0304959 0.5440252 0.0028965 0.0691378 2678 0 0
Disappearance -0.0486529 -0.0005100 0.0000000 0.0042135 0.0557576 0.0017718 0.0071868 2678 0 0
Evenness -0.0830806 -0.0060849 0.0000000 0.0069975 0.0817728 0.0006221 0.0144629 2678 0 0
SER_a (rel abundance) -0.1059755 -0.0146337 -0.0032189 0.0007927 0.1169447 -0.0072135 0.0183244 2678 0 0
Horn (binary, similarity) -0.0764433 -0.0091583 -0.0027316 0.0012988 0.0859619 -0.0041715 0.0113065 2678 0 0
Jaccard (binary, similarity) -0.0781734 -0.0115266 -0.0037510 0.0014597 0.0672796 -0.0051970 0.0135836 2678 0 0
Jaccard (binary, dissimilarity) -0.0672796 -0.0014597 0.0037510 0.0115266 0.0781734 0.0051970 0.0135836 2678 0 0
Log species richness -20.6068500 -0.9402512 0.0498002 1.4080463 26.9911617 0.2947554 2.6535099 2678 0 0
Log total abundance -31.2811462 -2.8068822 0.4993106 4.1780859 55.8343888 0.8272072 6.6756922 2678 0 0
Nestedness (jaccard) -0.0830556 -0.0041642 0.0002881 0.0074839 0.1156349 0.0021108 0.0137269 2678 0 0
Shannon -0.2007711 -0.0088851 0.0004650 0.0121768 0.1574411 0.0016449 0.0221596 2678 0 0
Simpson -0.0829149 -0.0045179 0.0001071 0.0058510 0.0800458 0.0007642 0.0111222 2678 0 0
Species richness -1.6727273 -0.0328546 0.0020269 0.0536209 1.5727273 0.0148247 0.1422215 2678 0 0
Total turnover (codyn) -0.0559441 -0.0013253 0.0032257 0.0097964 0.0621302 0.0045111 0.0115567 2678 0 0
Total abundance -755.8336538 -1.8770744 0.1129827 2.2456287 398.4499936 1.7786740 31.5332673 2678 0 0
Turnover (jaccard) -0.1223776 0.0000000 0.0000000 0.0077107 0.0989899 0.0030863 0.0134089 2678 0 0
bs <- map(var_temporal_trends, ~summary_distribution(slope_df[[.x]]))
names(bs) <- var_temporal_trends
  • Jaccard trends: -0.005 (0.014 s.d.) (-0.01 in @dornelas_assemblage_2014).
    • meaning -0.05 % change per decade in average
    • Jaccard decreased in 65% of the sites (79% in @dornelas_assemblage_2014)
  • Richness trends:
    • +0.3% richness change per year (2.7 s.d.), i.e. 3% per decade.

5 Comparison rigal, lm

rigal_trends_df <-  map2_dfr(
  rigal_trends, names(rigal_trends),
  ~.x %>% mutate(variable = .y)
  ) %>%
  select(variable, siteid, linear_slope) %>%
  pivot_wider(names_from = "variable", values_from = "linear_slope") %>%
  mutate(type = "rigal")
slope_comp <- list()
slope_comp$rigal <- rigal_trends_df[order(rigal_trends_df$siteid), ]
slope_comp$simple_lm <- slope_df[order(slope_df$siteid), ]
stopifnot(all(slope_comp$rigal$siteid == slope_comp$simple_lm$siteid))
slope_comp$diff <- tibble(
  siteid = slope_comp$rigal$siteid)
for (i in var_temporal_trends) {
  slope_comp$diff[[i]] <- slope_comp$rigal[[i]] - slope_comp$simple_lm[[i]]
}
  • All good !
old_par <- par()
par(mfrow = c(3, 2))
for (i in var_temporal_trends) {
  plot(
    slope_comp$rigal[[i]] ~
      slope_comp$simple_lm[[i]],
    ylab = "Rigal (polynomial degree 2)",
    xlab = "Simple LM"
  )
  abline(0, 1)
  title(i)
}

par(old_par)
#> Warning in par(old_par): le paramètre graphique "cin" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "cra" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "csi" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "cxy" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "din" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "page" ne peut être changé

# Compare Rigal and simple lm for few sites
plot_rigal_raw_data <- function(
  site = NULL,
  response = NULL,
  dataset = NULL,
  rigal_trends = NULL
  ) {

  raw_data <- dataset %>%
    filter(siteid == site)
  rigal_resp <- rigal_trends[[response]]
  rigal_resp_site <- rigal_resp[rigal_resp$siteid == site, ]
  plot(raw_data[[response]]~raw_data[["year"]], ylab = response, xlab = "Year")
  abline(rigal_resp_site$intercept, rigal_resp_site$linear_slope, col
  = "red")
  abline(lm(raw_data[[response]]~raw_data[["year"]]), col = "green")
  title(main = site)
}
plot_rigal_raw_data(site = "S2672", response = "log_total_abundance", dataset =
analysis_dataset, rigal_trends = rigal_trends)

slope_comp$diff <- slope_comp$diff %>%
  arrange(desc(abs(log_total_abundance)))
old_par <- par()
par(mfrow = c(3, 2))
for (i in slope_comp$diff[1:6,]$siteid) {
  plot_rigal_raw_data(
    site = i,
    response = "log_total_abundance",
    dataset = analysis_dataset,
    rigal_trends = rigal_trends
  )
}

par(old_par)
#> Warning in par(old_par): le paramètre graphique "cin" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "cra" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "csi" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "cxy" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "din" ne peut être changé
#> Warning in par(old_par): le paramètre graphique "page" ne peut être changé